// 全局变量
var today = new Date();
var todayTxt = today.format('yyyy-MM-dd');

var MY_NCOV_REPORT = (function () {

    function loadItem() {
        var params = getParams();
        // 输入有误的情况下，退出
        if (!params) {
            return false;
        }

        var $tbodySpecimenList = $('#tbodySpecimenList');
        $tbodySpecimenList.empty();
        WeKnow.loading();
        $.ajax({
            type: "POST",
            url: "invs_ncov_report.do/load",
            dataType: "json",
            contentType: "application/json",
            data: JSON.stringify(params),
            async: true,//异步调用
            success: function (data) {

                WeKnow.closeLoading();

                if (!WeKnow.filterAjaxResult(data)) return false; // session过期check

                if (data.errcode == 0) {
                    var e = '';

                    if ('datalist' in data && data.datalist.length == 0) {
                        WeKnow.errorMsg('没有查询到患者数据');
                        return;
                    }

                    $(data.datalist).each(function (idx, _a) {
                        e += '<tr class="pointer" ';
                        e += ' data-institution_id="' + _a.institutionId + '"';
                        e += ' data-institution_name="' + _a.institutionName + '"';
                        e += ' data-id="' + _a.id + '"';
                        e += '>';
                        // 日期
                        e += '<td class="text-center">' + (_a.createTm == null ? '' : new Date(_a.createTm).format('yyyy-MM-dd')) + '</td>';
                        // 姓名
                        e += '<td class="text-center">' + _a.name + '</td>';
                        //性别
                        e += '<td class="text-center">' + (_a.gender == 1 ? '男' : '女') + '</td>';
                        //年龄
                        e += '<td class="text-center">' + _a.age + '</td>';
                        //身份证
                        e += '<td class="text-right">' + _a.idCard + '</td>';
                        //联系电话
                        e += '<td class="text-right">' + _a.phone + '</td>';
                        //体温
                        e += '<td class="text-center">' + (_a.temperature == null ? ' ' : (_a.temperature >= 37.3 ? '<font style="color:red;">' + _a.temperature + '</font>' : _a.temperature)) + '</td>';
                        //咳嗽
                        e += '<td class="text-center">' + (_a.dryCough == 0 ? '否' : '<font style="color:red;">是</font>') + '</td>';
                        //呼吸急促
                        e += '<td class="text-center">' + (_a.polypnea == 0 ? '否' : '<font style="color:red;">是</font>') + '</td>';
                        //接触情况
                        e += '<td class="text-left">' +
                            (_a.vehicleSt == 1 || _a.touchInfectedSt == 1 || _a.touchEpidemicSt == 1 || _a.housingInfectedSt == 1 ? '<span class="text-danger">过去14天</span>' : ' ') +
                            (_a.touchInfectedSt == 0 ? '' : '<span class="text-danger">,有接触确诊或疑似新型冠状病毒患者或密切接触者</span>') +
                            (_a.touchEpidemicSt == 0 ? '' : '<span class="text-danger">,有接触来自湖北、温州、黄岩、温岭、台州、河南信阳、南阳的人员</span>') +
                            (_a.housingInfectedSt == 0 ? '' : '<span class="text-danger"> ,所居住小区有确诊或疑似新型冠状病毒患者或密切接触者</span>') +
                            (_a.vehicleSt == 0 ? '' : '<span class="text-danger"> ,有出现在确诊新型冠状病毒的公众场所或乘坐共同交通</span>') +
                            (_a.vehicleSt == 0 && _a.touchInfectedSt == 0 && _a.touchEpidemicSt == 0 && _a.housingInfectedSt == 0 ? '<span>过去14天无流行病学接触史</span>' : ' ') + '</td>';
                        //上报机构
                        e += '<td class="text-left">' + _a.institutionName + '</td>';
                        //判断结果
                        e += '<td class="text-center">' + _a.verdict + '</td>';
                        // 操作
                        e += '<td class="text-center"><button type="button" name="showDetail" class="btn btn-default btn-sm">查看详情</button></td>';
                        e += '</tr>';
                    });
                    $tbodySpecimenList.append(e);

                } else if (data.errcode == -1) {
                    WeKnow.errorMsg(data.errMsg);
                } else {
                    WeKnow.systemMsg('查询失败，请重新登录后再试');
                }
            }
        });
    }


    function loadPieChart() {
        WeKnow.loading();
        $.ajax({
            type: "POST",
            url: "invs_ncov_report.do/statistics_patient_by_institution",
            // dataType: "json",
            // contentType: "application/json",
            // data: JSON.stringify(params),
            async: true,//异步调用
            success: function (data) {
                WeKnow.closeLoading();
                if (data.errcode == 0) {
                    drawPieChart(data);
                }
                else if (data.errcode == -1) {
                    WeKnow.errorMsg(data.errMsg);
                } else {
                    WeKnow.systemMsg('查询失败，请重新登录');
                }
            }
        });
    }


    // 收集页面查询参数
    function getParams() {

        var data = getFromPar();//获取日期等共通输入参数

        if (!data) {
            return data;
        }
        // 患者查询条件：身份证，手机号码，姓名。
        var patientDetail = $.trim($('#patientDetail').val());
        if (patientDetail.length) {
            data.patientDetail = patientDetail;
        }
        // 判断结果
        var checkSt = $('#checkSt').val();
        if (checkSt != 9) { //全部以外
            data.suspectedResult = $('#checkSt').val();
        }

        return data;
    }

    // 收集页面查询参数
    function getDetailParams() {

        var data = getFromPar();//获取日期等共通输入参数
        if (!data) {
            return data;
        }
        // 用户点了哪个患者的记录
        data.id = $('#id').val();

        return data;
    }

    /** 获取页面输入参数 */
    function getFromPar() {
        var data = {};

        // 标本日期 from - to
        var $dtFrom = $('#dtFrom');
        if (!$dtFrom.val().length) {
            WeKnow.errorMsg('请输入查询开始日期');
            $dtFrom.focus();
            return false;
        }

        var dtFrom = $dtFrom.val();
        if (!MY_VALIDATOR.isDate(dtFrom, 'yyyy-MM-dd')) {
            WeKnow.errorMsg('查询开始日期格式不正确');
            $dtFrom.focus();
            return false;
        }
        data.dtFrom = dtFrom;

        // 查询日期to
        var $dtTo = $('#dtTo');
        if (!$dtTo.val().length) {
            WeKnow.errorMsg('请输入查询结束日期');
            $dtTo.focus();
            return false;
        }

        var dtTo = $dtTo.val();
        if (!MY_VALIDATOR.isDate(dtTo, 'yyyy-MM-dd')) {
            WeKnow.errorMsg('查询结束日期格式不正确');
            $dtTo.focus();
            return false;
        }
        data.dtTo = dtTo;
        data.businessSubType = 201;// 业务区分

        if ($('#onlyShowAppeal').prop('checked')) {
            data.onlyShowAppeal = 1;//只显示
        }

        return data;
    }

    // add by zhengxb 2019.6.21  end ---------------------------------------------------------
    return {
        loadItem: loadItem,
        loadPieChart:loadPieChart,
        getDetailParams: getDetailParams
    }
})();

$(document).ready(function () {

    // 页面初期数据查询
    MY_NCOV_REPORT.loadItem();
   //页面初始饼状图
    MY_NCOV_REPORT.loadPieChart();

    //查询按钮按下
    $('#search').on('click', function () {
        MY_NCOV_REPORT.loadItem();
    });
    $('#checkSt').on('change', function () {
        MY_NCOV_REPORT.loadItem();
    });

    // 查看明细
    $('#tbodySpecimenList').on('click', 'button[name="showDetail"]', function () {
        var $that = $(this);
        var id = $that.closest('tr').data('id');
        MY_NCOV_REPORT_COMM.initNcovReportComm(id);
    });


    // $('#nCovReport').on('click',function(){
    //     NCOV_REPORT.initNcovReportModal($('#medicalID').val(),$('#userUUID').val());
    // });

    // 回主页
    $('#backToWorkspace').on('click', function () {
        MY_NCOV_REPORT.loadItem();
        $('.input-toggle').toggle();//显示部分切换
    });


    // // 显示图片
    // $('#waste_tbody').on('click','td.show_img',function(){
    //
    // 	var $that = $(this).closest('tr');
    // 	// 模态框显示诊所名，选定的日期
    // 	$('#imageModalTitle').text($('#institution_name_dis').text() + ' ' + $that.data('serial_date'));
    // 	// 显示交接单图片
    // 	MY_SHOW_IMG.createShowImgModal($that.data('institution_id'),$that.data('receipt_img_id'));
    // });
    //
    $(".my_date_control").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'yy-mm-dd',//日期格式  
        yearSuffix: '年', //年的后缀
        showMonthAfterYear: true,//是否把月放在年的后面
        maxDate: (function () {
            return todayTxt;
        })(),//最大日期  
        yearRange: (function () {
            // '1990:2010'
            var year1 = '1900';
            var year2 = today.getFullYear();
            return year1 + ':' + year2;
        })(),
        monthNamesShort: ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],
        dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
        onUpdatedDatepicker: function (_year, _month, _calendar) {
            console.log('onUpdatedDatepicker');
            var $c = $('div#ui-datepicker-div');
            $c.find('td[data-handler="selectDay"]').each(function (idx, d) {
                var $d = $(d);
                $d.css({'pointer-events': 'auto', 'opacity': 1});
            });
        }
    });
});

// 绘制饼图[警告]
function drawPieChart(ncovReportPie) {
    // 基于准备好的dom，初始化echarts实例
    var abnormalChartArea = document.getElementById('ncovReportPie');
    var badnessChart = echarts.init(abnormalChartArea);
    window.addEventListener('resize', function () {
        badnessChart.resize();
    });
    $('p[name="observed_patient_count"]').text(ncovReportPie.data.observedPatientCount);
    $('p[name="all_patient_count"]').text(ncovReportPie.data.allPatientCount);
    $('span[name="more_yesterday_observed_patient_count"]').text(ncovReportPie.data.moreYesterdayObservedPatientCount);
    $('span[name="more_yesterday_patient_count"]').text(ncovReportPie.data.moreYesterdayPatientCount);
    var classfyListTitle = [];
    var classfyList = [];

    $(ncovReportPie.datalist).each(function (idx, a) {
        classfyListTitle.push(a.name);
        classfyList.push(a);
    });

    // 指定图表的配置项和数据
    var option = {
        title: {
            text: '新冠待观察人员地区分布',
            subtext: '',
            x: '30%'
        },
        tooltip: {
            trigger: 'item',
            formatter: "{a} <br/>{b} : {c} ({d}%)"
        },
        legend: {
            orient: 'vertical',
            x: '80%',
            data: classfyList
        },
        // toolbox: {
        //     right: '5%',
        //     feature: {
        //         saveAsImage: {}
        //     }
        // },
        series: [
            {
                name: '新冠疑似汇总',
                type: 'pie',
                radius: '78%',
                center: ['40%', '56%'],
                // 设置值域的那指向线
                labelLine: {
                    normal: {
                        show: true   // show设置线是否显示，默认为true，可选值：true ¦ false
                    }
                },
                data: classfyList,
                // 设置值域的标签
                label: {
                    normal: {
                        position: 'outer',  // 设置标签位置，默认在饼状图外 可选值：'outer' ¦ 'inner（饼状图上）'
                        // formatter: '{a} {b} : {c}个 ({d}%)'   设置标签显示内容 ，默认显示{b}
                        // {a}指series.name  {b}指series.data的name
                        // {c}指series.data的value  {d}%指这一部分占总数的百分比
                        formatter: '{b} : {c}个 ({d}%)'
                    }
                },
                itemStyle: {
                    emphasis: {
                        shadowBlur: 10,
                        shadowOffsetX: 0,
                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                    }
                }
            }
        ]
    };

    // 使用刚指定的配置项和数据显示图表。
    badnessChart.setOption(option);
}